<HTML><HEAD>
<!--
    -------------------
    Mortgage Calculator
    -------------------
-->

<SCRIPT LANGUAGE="JavaScript"><!-- hide from old browsers

/*
    THE JAVASCRIPT COOKBOOK by Erica Sadun, webrx@mindspring.com
    Copyright (c)1998 by Charles River Media.  All Rights Reserved.
    
    This applet can only be re-used or modifed by license holders of the
    JavaScript Cookbook CD-ROM.  Credit must be given in the source
    code and this copyright notice must be maintained. If you do
    not hold a license to the JavaScript Cookbook, you may NOT
    duplicate or modify this code for your own use.

    Use at your own risk. No warranty is given or implied of the suitability 
    of this applet for any specific application. Neither Erica Sadun nor 
    Charles River Media will be held responsible for any unwanted effects 
    due to the use of this applet or any derivative. 
*/

//------------------FORM UTILITIES----------------------------
// Set the focus and selection on a field

function setHilite()
{
    document.forms[0].RATE.focus()
    document.forms[0].RATE.select()
    return true
}

// --------------------Math Strings---------------------

// Strip a floating point's digits to #.### -- you set the digits
function stripDigits(aNumber, digits)
{
  var str = "" + aNumber
  var b = str.lastIndexOf(".")
  
  // add decimal point if needed
  if (b < 0) str += "." 
  
  // pad with extra zeros in case we have too "round" a number
  for (var i = 0; i < digits; i++) str += "0"

  // extract existing decimal or just return
  if (b >= 0) return(str).substring(0,b+1+digits)
  return str
}

// --------------------Calculate Results--------------------

function calculate(aform)
{
    // Recover the information from the form
    var totalPayments = (aform.YEARS.options.selectedIndex + 2) * 60
    var monthlyInterest = (parseFloat(aform.RATE.value) / 1200)
    var principle = (aform.PRINC.options.selectedIndex + 1)*10000
    
    // Compute the monthly payments using JavaScript math and
    // a standard compound interest formula
    var num = Math.pow(1 + monthlyInterest, totalPayments)    
    var monthly = principle * monthlyInterest * num / (num - 1)
    
    // Update the form
    aform.MONTHLY.value = "$"+stripDigits(monthly, 2)
    aform.TOTAL.value = "$" + stripDigits(monthly * totalPayments, 2)
    aform.INTEREST.value = "$" + stripDigits(monthly * totalPayments - principle, 2)
}

<!-- done hiding --></SCRIPT></HEAD>

<BODY bgcolor="ffffff" onLoad="return setHilite()">

<FONT COLOR="007777"><H1><IMG SRC="../GRAFX/UTENS.JPG" WIDTH=80 HEIGHT=50
ALIGN = CENTER>Mortgage Calculator</H1></FONT>

<BLOCKQUOTE>

    <FONT COLOR="770000">
    Use this JavaScript Applet to determine monthly mortgage payments.
    </FONT>
    
    <FONT SIZE=4>
    
    <FORM>
    Annual Percentage Rate: <INPUT TYPE="text" SIZE="10" NAME="RATE" 
    VALUE="5">%<p>
    Amount of loan (in thousands): <SELECT    NAME="PRINC" SIZE="1">
    <OPTION VALUE="10">10    <OPTION VALUE="20">20
    <OPTION VALUE="30">30    <OPTION VALUE="40">40
    <OPTION VALUE="50">50    <OPTION VALUE="60">60
    <OPTION VALUE="70" SELECTED>70    <OPTION VALUE="80">80
    <OPTION VALUE="90">90    <OPTION VALUE="100">100
    <OPTION VALUE="110">110    <OPTION VALUE="120">120
    <OPTION VALUE="130">130    <OPTION VALUE="140">140
    <OPTION VALUE="150">150    <OPTION VALUE="160">160
    <OPTION VALUE="170">170    <OPTION VALUE="180">180
    <OPTION VALUE="190">190    <OPTION VALUE="200">200
    <OPTION VALUE="210">210    <OPTION VALUE="220">220
    <OPTION VALUE="230">230    <OPTION VALUE="240">240
    <OPTION VALUE="250">250 </SELECT><p>
    Years of Loan: <SELECT NAME="YEARS" SIZE="1"
    <OPTION VALUE="5">5
    <OPTION VALUE="10">10    <OPTION VALUE="15">15
    <OPTION VALUE="20">20    <OPTION VALUE="25">25
    <OPTION VALUE="30" SELECTED>30    </SELECT>
    <P><CENTER>
    <INPUT TYPE="button" VALUE="Calculate Payments"
            onClick="calculate(this.form);return setHilite()">
    </CENTER>
    <P>
    Monthly Payments: 
    <INPUT TYPE="TEXT" SIZE=10 NAME="MONTHLY"  VALUE="$0.00">
    <P>
    Total Cost of Loan:
    <INPUT TYPE="TEXT" SIZE=10 NAME="TOTAL"  VALUE="$0.00">
    <P>
    Total Interest Paid:
    <INPUT TYPE="TEXT" SIZE=10 NAME="INTEREST"  VALUE="$0.00">
    </FONT></BLOCKQUOTE> 
    
    <FONT COLOR="007777"><H2>Discussion</H2></FONT>
    <FONT SIZE=4>
    This applet shows more extensive use of formulas than the
    Tailor example.     This mortgage calculator uses a compound interest
    equation to determine monthly payments over the life of
    a loan.    Each piece of the equation is tightly coupled to
    the input form.  The rate is recovered from the text input's value.
    The years and principle are calculated from the choices of
    the selection box.  Simple arithmetic converts selection
    indices to mathematical values.<p>
    
    <b>Please note:</b> These payment numbers are neither warranted nor are 
    they likely to be accurate.<p>
    </FONT>
    
    <b>Calculating Payments:</b>
    
<PRE><FONT COLOR="770000">
function calculate(aform)
{
    // Recover the information from the form
    var totalPayments = (aform.YEARS.options.selectedIndex + 2) * 60
    var monthlyInterest = (parseFloat(aform.RATE.value) / 1200)
    var principle = (aform.PRINC.options.selectedIndex + 1)*10000
    
    // Compute the monthly payments using JavaScript math and
    // a standard compound interest formula
    var num = Math.pow(1 + monthlyInterest, totalPayments)    
    var monthly = principle * monthlyInterest * num / (num - 1)
    
    // Update the form
    aform.MONTHLY.value = "$"+stripDigits(monthly, 2)
    aform.TOTAL.value = "$" + stripDigits(monthly * totalPayments, 2)
    aform.INTEREST.value = "$" + stripDigits(monthly * totalPayments - principle, 2)
}
</PRE></FONT>

<h5>Copyright &copy;1996 by Charles River Media, All Rights Reserved</h5>
</BODY>
</HTML>